library(ggplot2)
library(plotly)

Attaching package: ‘plotly’

The following object is masked from ‘package:ggplot2’:

    last_plot

The following object is masked from ‘package:stats’:

    filter

The following object is masked from ‘package:graphics’:

    layout
msleep
cat(factor(msleep$order))
3 15 17 19 2 14 3 17 3 2 2 17 15 17 19 17 19 6 10 7 16 5 13 13 9 15 17 3 15 2 4 3 10 15 15 16 7 15 17 17 17 17 5 17 15 17 17 11 2 15 3 3 3 15 9 15 17 8 3 4 8 6 10 17 17 15 19 17 17 17 17 17 19 2 12 17 13 1 18 4 3 3 3

Pie-Chart

df_order = data.frame(table(msleep$order))
print(df_order)

fig_order = plot_ly(type='pie', labels=df_order$Var1, values=df_order$Freq, 
                    textinfo='label+percent',insidetextorientation='radial')
fig_order
df_vore = data.frame(table(msleep$vore))
df_vore
fig_vore = plot_ly(type='pie', labels=df_vore$Var1, values=df_vore$Freq,
                   textinfo='label+percent',insidetextorientation='radial')
fig_vore

Scatter plot

fig_sp = plot_ly(data = msleep, x=~brainwt, y=~bodywt, color = ~order)
fig_sp
No trace type specified:
  Based on info supplied, a 'scatter' trace seems appropriate.
  Read more about this trace type -> https://plotly.com/r/reference/#scatter
No scatter mode specifed:
  Setting the mode to markers
  Read more about this attribute -> https://plotly.com/r/reference/#scatter-mode
Warning: Ignoring 27 observations
Warning in RColorBrewer::brewer.pal(N, "Set2") :
  n too large, allowed maximum for palette Set2 is 8
Returning the palette you asked for with that many colors

Warning in RColorBrewer::brewer.pal(N, "Set2") :
  n too large, allowed maximum for palette Set2 is 8
Returning the palette you asked for with that many colors

No trace type specified:
  Based on info supplied, a 'scatter' trace seems appropriate.
  Read more about this trace type -> https://plotly.com/r/reference/#scatter
No scatter mode specifed:
  Setting the mode to markers
  Read more about this attribute -> https://plotly.com/r/reference/#scatter-mode
Warning: Ignoring 27 observations
Warning in RColorBrewer::brewer.pal(N, "Set2") :
  n too large, allowed maximum for palette Set2 is 8
Returning the palette you asked for with that many colors

Warning in RColorBrewer::brewer.pal(N, "Set2") :
  n too large, allowed maximum for palette Set2 is 8
Returning the palette you asked for with that many colors

Using Normalization

plot(sqrt(msleep$bodywt), sqrt(msleep$brainwt), col="red")
text(sqrt(msleep$bodywt), sqrt(msleep$brainwt), msleep$name, cex=0.5)

plot(msleep$bodywt^(1/100), msleep$brainwt^(1/100), col="red")
text(msleep$bodywt^(1/100), msleep$brainwt^(1/100), msleep$name, cex=0.5)

Scatter plot

plot(log10(msleep$bodywt), log10(msleep$brainwt), col="red")
text(log10(msleep$bodywt), log10(msleep$brainwt), msleep$name, cex=0.5)

t <- list(family = "Helvetica",size = 14,color = "blue")
t1 <- list(family = "Times New Roman",color = "red")
t2 <- list(family = "Courier New",size = 14,color = "green")
t3 <- list(family = 'Arial')
fig_sp = plot_ly(data = msleep, x = ~log10(bodywt), y = ~log10(brainwt), color = ~name,
                  type = 'scatter', mode = 'markers')%>%
                          layout(title= list(text = "Body weight vs Brain weight",font = t1), font=t, 
                          legend = list(title=list(text='Animals',font = t2)), 
                          xaxis  = list(title = list(text ='Brain Weight', font = t3)),
                          yaxis  = list(title = list(text ='Body Weight', font = t3)),
                          plot_bgcolor='#e5ecf6')

fig_sp
Warning: Ignoring 27 observations
Warning in RColorBrewer::brewer.pal(N, "Set2") :
  n too large, allowed maximum for palette Set2 is 8
Returning the palette you asked for with that many colors

Warning in RColorBrewer::brewer.pal(N, "Set2") :
  n too large, allowed maximum for palette Set2 is 8
Returning the palette you asked for with that many colors

Warning: Ignoring 27 observations
Warning in RColorBrewer::brewer.pal(N, "Set2") :
  n too large, allowed maximum for palette Set2 is 8
Returning the palette you asked for with that many colors

Warning in RColorBrewer::brewer.pal(N, "Set2") :
  n too large, allowed maximum for palette Set2 is 8
Returning the palette you asked for with that many colors

This is shows a clear linear relation-ship between Body weight and Brain weight

Barplot

# Define labels for the bars
labs = c('herbi'='Herbivore',
         'carni'='Carnivore',
         'omni'='Omnivore',
         'insecti'='Insectivore')

bar_plot = ggplot(data=msleep, aes(x = vore, y = ..count.. / sum(..count..),fill = factor(vore))) + 
           geom_bar(color='black') +
           labs(x = "Vore", y = "Percentage of Vore", title  = "Percentage of the quality of the Vore") +
           scale_x_discrete(labels =labs)
           scale_y_continuous(labels = scales::percent)
<ScaleContinuousPosition>
 Range:  
 Limits:    0 --    1
ggplotly(bar_plot)

Histogram

histogram_plot = ggplot(data=msleep, aes(x = sleep_total)) + 
                 geom_histogram(binwidth = 1.25, color = "black",fill = "grey") +
                 labs(x = "Total Time asleep per day(h)", y="Count", title="Count of Total Time asleep per day(h)") +
                 scale_x_discrete(labels =labs)

ggplotly(histogram_plot)
NA

Kernel Density Plot

density_plot = ggplot(data=msleep, aes(x =log10(brainwt))) +
               geom_density(fill = "indianred3") + 
               labs(x = "brain weight", y="density", title="Kernal density of the brain weight")

ggplotly(density_plot)
Warning: Removed 27 rows containing non-finite values (stat_density).
LS0tCnRpdGxlOiAiUiBOb3RlYm9vayIKb3V0cHV0OiBodG1sX25vdGVib29rCi0tLQoKYGBge3J9CmxpYnJhcnkoZ2dwbG90MikKbGlicmFyeShwbG90bHkpCmBgYAoKYGBge3J9Cm1zbGVlcApgYGAKCmBgYHtyfQpjYXQoZmFjdG9yKG1zbGVlcCRvcmRlcikpCmBgYAoKIyMgUGllLUNoYXJ0CmBgYHtyfQpkZl9vcmRlciA9IGRhdGEuZnJhbWUodGFibGUobXNsZWVwJG9yZGVyKSkKcHJpbnQoZGZfb3JkZXIpCmBgYAoKYGBge3J9CgpmaWdfb3JkZXIgPSBwbG90X2x5KHR5cGU9J3BpZScsIGxhYmVscz1kZl9vcmRlciRWYXIxLCB2YWx1ZXM9ZGZfb3JkZXIkRnJlcSwgCiAgICAgICAgICAgICAgICAgICAgdGV4dGluZm89J2xhYmVsK3BlcmNlbnQnLGluc2lkZXRleHRvcmllbnRhdGlvbj0ncmFkaWFsJykKZmlnX29yZGVyCmBgYAoKCmBgYHtyfQpkZl92b3JlID0gZGF0YS5mcmFtZSh0YWJsZShtc2xlZXAkdm9yZSkpCmRmX3ZvcmUKYGBgCgoKYGBge3J9CmZpZ192b3JlID0gcGxvdF9seSh0eXBlPSdwaWUnLCBsYWJlbHM9ZGZfdm9yZSRWYXIxLCB2YWx1ZXM9ZGZfdm9yZSRGcmVxLAogICAgICAgICAgICAgICAgICAgdGV4dGluZm89J2xhYmVsK3BlcmNlbnQnLGluc2lkZXRleHRvcmllbnRhdGlvbj0ncmFkaWFsJykKZmlnX3ZvcmUKYGBgCgojIyBTY2F0dGVyIHBsb3QKYGBge3J9CmZpZ19zcCA9IHBsb3RfbHkoZGF0YSA9IG1zbGVlcCwgeD1+YnJhaW53dCwgeT1+Ym9keXd0LCBjb2xvciA9IH5vcmRlcikKZmlnX3NwCmBgYAoKIyMjIFVzaW5nIE5vcm1hbGl6YXRpb24KYGBge3J9CnBsb3Qoc3FydChtc2xlZXAkYm9keXd0KSwgc3FydChtc2xlZXAkYnJhaW53dCksIGNvbD0icmVkIikKdGV4dChzcXJ0KG1zbGVlcCRib2R5d3QpLCBzcXJ0KG1zbGVlcCRicmFpbnd0KSwgbXNsZWVwJG5hbWUsIGNleD0wLjUpCmBgYAoKYGBge3J9CnBsb3QobXNsZWVwJGJvZHl3dF4oMS8xMDApLCBtc2xlZXAkYnJhaW53dF4oMS8xMDApLCBjb2w9InJlZCIpCnRleHQobXNsZWVwJGJvZHl3dF4oMS8xMDApLCBtc2xlZXAkYnJhaW53dF4oMS8xMDApLCBtc2xlZXAkbmFtZSwgY2V4PTAuNSkKYGBgCgojIyBTY2F0dGVyIHBsb3QKYGBge3J9CnBsb3QobG9nMTAobXNsZWVwJGJvZHl3dCksIGxvZzEwKG1zbGVlcCRicmFpbnd0KSwgY29sPSJyZWQiKQp0ZXh0KGxvZzEwKG1zbGVlcCRib2R5d3QpLCBsb2cxMChtc2xlZXAkYnJhaW53dCksIG1zbGVlcCRuYW1lLCBjZXg9MC41KQpgYGAKCmBgYHtyfQp0IDwtIGxpc3QoZmFtaWx5ID0gIkhlbHZldGljYSIsc2l6ZSA9IDE0LGNvbG9yID0gImJsdWUiKQp0MSA8LSBsaXN0KGZhbWlseSA9ICJUaW1lcyBOZXcgUm9tYW4iLGNvbG9yID0gInJlZCIpCnQyIDwtIGxpc3QoZmFtaWx5ID0gIkNvdXJpZXIgTmV3IixzaXplID0gMTQsY29sb3IgPSAiZ3JlZW4iKQp0MyA8LSBsaXN0KGZhbWlseSA9ICdBcmlhbCcpCmBgYAoKYGBge3J9CmZpZ19zcCA9IHBsb3RfbHkoZGF0YSA9IG1zbGVlcCwgeCA9IH5sb2cxMChib2R5d3QpLCB5ID0gfmxvZzEwKGJyYWlud3QpLCBjb2xvciA9IH5uYW1lLAogICAgICAgICAgICAgICAgICB0eXBlID0gJ3NjYXR0ZXInLCBtb2RlID0gJ21hcmtlcnMnKSU+JQogICAgICAgICAgICAgICAgICAgICAgICAgIGxheW91dCh0aXRsZT0gbGlzdCh0ZXh0ID0gIkJvZHkgd2VpZ2h0IHZzIEJyYWluIHdlaWdodCIsZm9udCA9IHQxKSwgZm9udD10LCAKICAgICAgICAgICAgICAgICAgICAgICAgICBsZWdlbmQgPSBsaXN0KHRpdGxlPWxpc3QodGV4dD0nQW5pbWFscycsZm9udCA9IHQyKSksIAogICAgICAgICAgICAgICAgICAgICAgICAgIHhheGlzICA9IGxpc3QodGl0bGUgPSBsaXN0KHRleHQgPSdCcmFpbiBXZWlnaHQnLCBmb250ID0gdDMpKSwKICAgICAgICAgICAgICAgICAgICAgICAgICB5YXhpcyAgPSBsaXN0KHRpdGxlID0gbGlzdCh0ZXh0ID0nQm9keSBXZWlnaHQnLCBmb250ID0gdDMpKSwKICAgICAgICAgICAgICAgICAgICAgICAgICBwbG90X2JnY29sb3I9JyNlNWVjZjYnKQoKZmlnX3NwCmBgYApUaGlzIGlzIHNob3dzIGEgY2xlYXIgbGluZWFyIHJlbGF0aW9uLXNoaXAgYmV0d2VlbiBCb2R5IHdlaWdodCBhbmQgQnJhaW4gd2VpZ2h0CgojIyBCYXJwbG90CmBgYHtyfQojIERlZmluZSBsYWJlbHMgZm9yIHRoZSBiYXJzCmxhYnMgPSBjKCdoZXJiaSc9J0hlcmJpdm9yZScsCiAgICAgICAgICdjYXJuaSc9J0Nhcm5pdm9yZScsCiAgICAgICAgICdvbW5pJz0nT21uaXZvcmUnLAogICAgICAgICAnaW5zZWN0aSc9J0luc2VjdGl2b3JlJykKCmJhcl9wbG90ID0gZ2dwbG90KGRhdGE9bXNsZWVwLCBhZXMoeCA9IHZvcmUsIHkgPSAuLmNvdW50Li4gLyBzdW0oLi5jb3VudC4uKSxmaWxsID0gZmFjdG9yKHZvcmUpKSkgKyAKICAgICAgICAgICBnZW9tX2Jhcihjb2xvcj0nYmxhY2snKSArCiAgICAgICAgICAgbGFicyh4ID0gIlZvcmUiLCB5ID0gIlBlcmNlbnRhZ2Ugb2YgVm9yZSIsIHRpdGxlICA9ICJQZXJjZW50YWdlIG9mIHRoZSBxdWFsaXR5IG9mIHRoZSBWb3JlIikgKwogICAgICAgICAgIHNjYWxlX3hfZGlzY3JldGUobGFiZWxzID1sYWJzKQogICAgICAgICAgIHNjYWxlX3lfY29udGludW91cyhsYWJlbHMgPSBzY2FsZXM6OnBlcmNlbnQpCgpnZ3Bsb3RseShiYXJfcGxvdCkKYGBgCiMjIEhpc3RvZ3JhbQpgYGB7cn0KaGlzdG9ncmFtX3Bsb3QgPSBnZ3Bsb3QoZGF0YT1tc2xlZXAsIGFlcyh4ID0gc2xlZXBfdG90YWwpKSArIAogICAgICAgICAgICAgICAgIGdlb21faGlzdG9ncmFtKGJpbndpZHRoID0gMS4yNSwgY29sb3IgPSAiYmxhY2siLGZpbGwgPSAiZ3JleSIpICsKICAgICAgICAgICAgICAgICBsYWJzKHggPSAiVG90YWwgVGltZSBhc2xlZXAgcGVyIGRheShoKSIsIHk9IkNvdW50IiwgdGl0bGU9IkNvdW50IG9mIFRvdGFsIFRpbWUgYXNsZWVwIHBlciBkYXkoaCkiKSArCiAgICAgICAgICAgICAgICAgc2NhbGVfeF9kaXNjcmV0ZShsYWJlbHMgPWxhYnMpCgpnZ3Bsb3RseShoaXN0b2dyYW1fcGxvdCkKCmBgYAoKIyMgS2VybmVsIERlbnNpdHkgUGxvdApgYGB7cn0KZGVuc2l0eV9wbG90ID0gZ2dwbG90KGRhdGE9bXNsZWVwLCBhZXMoeCA9bG9nMTAoYnJhaW53dCkpKSArCiAgICAgICAgICAgICAgIGdlb21fZGVuc2l0eShmaWxsID0gImluZGlhbnJlZDMiKSArIAogICAgICAgICAgICAgICBsYWJzKHggPSAiYnJhaW4gd2VpZ2h0IiwgeT0iZGVuc2l0eSIsIHRpdGxlPSJLZXJuYWwgZGVuc2l0eSBvZiB0aGUgYnJhaW4gd2VpZ2h0IikKCmdncGxvdGx5KGRlbnNpdHlfcGxvdCkKYGBgCgoKYGBge3J9CmBgYAoKCmBgYHtyfQpgYGAKCgo=